﻿﻿using jiuyuan.服务;
using jiuyuan.管理器;

namespace jiuyuan.数据.基础数据类;

public class 持续效果
{
    public Guid Id { get; set; } = Guid.CreateVersion7();
    public string 效果名称 { get; set; } = string.Empty;
    public 技能效果 基础效果 { get; set; } = null!;
    public int 剩余回合数 { get; set; }
    public int 当前层数 { get; set; } = 1;
    public int 最大层数 { get; set; } = 1;
    
    // 外键属性
    public Guid 施加者Id { get; set; }
    public Guid 目标Id { get; set; }
    
    // 导航属性
    public 战斗单位 施加者 { get; set; } = null!;
    public 战斗单位 目标 { get; set; } = null!;
    
    // 参数字典
    public Dictionary<string, object> 参数 { get; set; } = new();

    /// <summary>
    /// 应用持续效果（每回合触发）
    /// </summary>
    public void 触发效果(战斗管理器 战斗管理器)
    {
        基础效果.应用效果(施加者, [目标], null!, 战斗管理器);
        剩余回合数--;
    }
}